// Copyright 2022 a.o.smith ALL Rights Reserved
package com.liuxinlong.modules.moc.service;

import com.liuxinlong.common.ImportResp;
import com.liuxinlong.modules.entity.EcnBase;
import com.liuxinlong.modules.entity.EcnContent;
import com.liuxinlong.modules.entity.FileManage;

import java.util.List;
import java.util.Map;

/**
 * ecn管理服务层接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022年3月7日
 */
public interface EcnService {
    /**
     * 分页查询ecn信息
     *
     * @param queryParam 查询参数
     * @return ecn信息列表
     */
    List<Map<String, Object>> pageEcnList(Map<String, Object> queryParam);

    /**
     * ecn计数
     *
     * @param queryParam 查询参数
     * @return ecn数量
     */
    int getEcnCount(Map<String, Object> queryParam);

    /**
     * 同步ecn文件信息
     *
     * @return 同步ecn文件数量
     */
    int syncEcnFile();

    /**
     * 新增ecn信息
     *
     * @param ecnBase ecn信息
     */
    void addEcn(EcnBase ecnBase);

    /**
     * 导入数据预处理
     *
     * @param fileName 文件地址
     * @return 预处理数据
     */
    ImportResp importEcn(String fileName);

    /**
     * 批量新增ECN信息
     *
     * @param dataList ECN信息列表
     * @return 失败数据
     */
    ImportResp batchAddEcn(List<EcnContent> dataList);

    /**
     * 汇总ECN数据
     *
     * @param fileList 文件列表
     * @return ECN数据
     */
    ImportResp summaryEcn(List<FileManage> fileList);

    /**
     * 导入模板数据上传
     *
     * @param param 原始数据信息
     */
    void uploadImportTemplateData(Map<String,Object> param);
}
